package com.cctvcc.auth.service;

import cn.cctvcc.core.domain.R;
import com.cctvcc.auth.domain.LoginBody;
import com.cctvcc.auth.domain.RegisterBody;

/**
 * @description: 用户登录校验
 * @author: Jiang
 * @create: 2021-09-23 17:01
 */
public interface AuthService {

    /**
     * 登录
     */
    R<?> login(LoginBody loginBody) throws Exception;

    /**
     * 登出
     */
    R<?> logout();

    /**
     * 获取公钥
     */
    R<?> getPublicKey(String username) throws Exception;

    /**
     * 发送邮箱验证码
     */
    R<?> getEmailCode(String emailValue, String eamilType);

    /**
     * 注册
     */
    R<?> register(RegisterBody registerBody);

    /**
     * 忘记密码
     */
    R<?> forget(String emailValue, String code);

    /**
     * 重置密码
     */
    R<Integer> resetpass(String password);

    /**
     * 检查用户是否唯一
     */
    R<String> checkUserNameUnique(String userName);

}
